In communication networks it is well known to use service requests which specify a service required from the network. A service request may include a source, a destination, a certain bandwidth, a certain quality of service and/or other parameters. The network attempts to accommodate the service request by making the requested resources available. Often, many alternative resources, such as parallel paths, are available to accommodate a requested service. Thus, a network service corresponding to a particular service request may have several alternative implementations.
The resources to be utilized by a service may be subject to constraints. A particular network service may, for example, require a certain minimum bandwidth, which imposes a bandwidth constraint. For safety and security reasons, services may be required to share a certain resource in a network node, or may be required not to share a resource.
In traditional networks, the functionality of a network node is coupled with a physical device and, hence, the establishment of a network service involves setting up physical devices, their connections and configuration. If demand changes for an existing service, or if a new service is demanded, the network operator may be required to add or remove devices from the network to increase or decrease the capacity or functionality if the existing devices cannot meet the demanded change.
Network Functions Virtualization (NFV) is a method to decouple network functions, for example router, firewall, application layer gateway, a virus scanner, from the physical device by using virtualization technologies, such as VMware. Virtualization enables physical devices to be regarded as resources on which network functions can be loaded dynamically. For example, when a network service is required to filter traffic at a certain location in a network, NFV allows for the allocation of a firewall network function to a multi-purpose device (for example, a device hosted in a cloud datacenter).
A service can be described as a Service Function Chain (SFC). An SFC defines a set of one or more network functions of a service and ordering constraints for the functions through which data packets are exposed.
ETSI Draft Specification GS-NFV-MAN V0.6.1, “Network Function Virtualization (NFV): Management and Orchestration” (2014-07) describes the management and orchestration framework required for provisioning virtualized network functions and related operations. One scenario that is described in the ETSI Draft Specification is that virtual network functions can be chained to other virtual network functions and/or physical network functions to realize a network service.
Virtual network functions and virtual network paths may be used to deploy network services independently from their physical implementations. When specifying a network service in terms of virtual network functions and virtual network paths, those functions and paths have to be allocated to their physical counterparts. Two or more virtual network functions may be collocated, that is, implemented in the same physical resource (for example, two virtual switches may be collocated in a single physical node). Alternatively, two or more virtual network functions may be non-collocated, that is, implemented in different physical resources (for example, two virtual switches may be non-collocated in two distinct physical nodes).
The paper by Espling et al., “Modeling and placement of structured cloud services”, Transactions on Network and Service Management, 2013, discloses a method of using affinity constraints and anti-affinity constraints for the allocation of cloud services. Affinity constraints, also known as co-location constraints, indicate that services or service items should share a common resource, such as a node. Anti-affinity constraints indicate that services or service items should not share a common resource but should use alternative resources instead. Such constraints may for example indicate that services should not use a node in a certain country, and/or should use a certain node in the home country.
The method disclosed in Espling's paper focuses on constraints in nodes, avoiding co-location of services on the same node, for example. The use of affinity constraints and anti-affinity constraints allows a very clear definition of certain constraints, in particular constraints relating the sharing, or not sharing, of resources. However, this known method is limited in scope and only deals with network nodes.
It is often desired to specify that virtual network paths should not share a common physical path, for example to increase the reliability of a network service or to deal with bandwidth limitations. Similarly, it is also often desired to specify that virtual network paths should share a common physical path, for example for security or efficiency reasons. Prior art methods fail to provide a simple and effective manner to achieve this.